package com.sistemadistribucion.servlets;

import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import DTO.TareaMantenimientoVO;
import com.sistemadistribucion.controlador.BDWeb;

@WebServlet(asyncSupported = true, urlPatterns = { "/servletVehiculo" })
public class servletVehiculo extends HttpServlet 
{
	private static final long serialVersionUID = 1L;
       
    public servletVehiculo() 
    {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		try 
		{ 	
			String action =  request.getParameter("action");
			String jspPage = "mostrarMensaje.jsp";
				
			if ((action==null) || (action.length() < 1) )
			{
				action = "default";
			}
			else if ("asignarPlanMantenimiento".equals(action)) 
			{
				String patente = request.getParameter("patente");
				int idPlan = Integer.parseInt(request.getParameter("idPlan"));
				
				jspPage = "mostrarMensaje.jsp";
				
				boolean flag = BDWeb.getInstancia().asignarPlanMantenimiento(patente , idPlan);
				
				if (!flag)
				{
					request.setAttribute("mensaje", "Hubo un problema al asignar el Plan de Mantenimiento");	
				}
				else
				{
					request.setAttribute("mensaje", "Se ha asignado el Plan de Mantenimiento con exito");	
				}
			}
			else if ("aplicarPlanMantenimiento".equals(action)) 
			{
				String patente = request.getParameter("patente");
				
				jspPage = "mostrarMensaje.jsp";
				
				Collection<TareaMantenimientoVO> vtmVO = BDWeb.getInstancia().aplicarPlanMantenimiento(patente);
				
				if (vtmVO == null)
				{
					request.setAttribute("mensaje", "Hubo un problema al asignar el Plan de Mantenimiento");	
				}
				else
				{
					String mensaje = "<p> Se ha asignado el Plan de Mantenimiento con exito: </p>";
					Iterator<TareaMantenimientoVO> itmVO = vtmVO.iterator();
					int i = 0;
					while(itmVO.hasNext())
					{
						i++;
						mensaje = "<p>" + mensaje + "Tarea Relizada Nro:" + i + "</p>";
						
						TareaMantenimientoVO tmVO = itmVO.next();
						mensaje = "<p>" + mensaje + "Tarea: " + tmVO.getDetalle() + "</p>";
					}
					request.setAttribute("mensaje", mensaje);	
				}
			}
			else
			{
				if ("XXXX".equals(action)) 
				{
					HttpSession sesionIniciada = request.getSession();
					sesionIniciada.setAttribute("usuario", "");					
				}
			}
			
			dispatch(jspPage, request, response);
		} 
		catch (Exception e) 
		{
			e.printStackTrace();
		}
	}
	
	
	protected void dispatch(String jsp, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
	{
		if(jsp != null)
		{
			RequestDispatcher rd = request.getRequestDispatcher(jsp);
			rd.forward(request, response);
		}
	}
}
